import { useEffect, useState } from 'react';
//闭包陷阱解决方案：2.
//这种解法能解决闭包陷阱,但在这里并不合适,因为effect里跑的是定时器,每次都重新跑定时器,那定时器不就是每1s执行一次了.
function Six() {
  const [count, setCount] = useState(0);
  useEffect(() => {
    console.log(count); //用到了外面的count
    const timer = setInterval(() => {
      setCount((count) => count + 1);
    }, 1000);

    return () => {
      clearInterval(timer);
    };
  }, [count]); //count变化的时候,会重新执行effect.那执行的函数引用的就是最新的count值
  return (
    <>
      <div>{count}</div>
    </>
  );
}
export default Six;
